package com.fuyao.cloud.admin.flow.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.fuyao.cloud.admin.api.entity.SysUser;
import com.fuyao.cloud.admin.flow.dto.TaskQueryParamsVo;
import com.fuyao.cloud.admin.flow.dto.TaskVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface IFlowableTaskMapper {
    IPage<TaskVo> getApplyedTasksPagerModel(IPage<TaskVo> page, @Param("params") TaskQueryParamsVo params);

    IPage<TaskVo> getAppingTasksPagerModel(IPage<TaskVo> page, @Param("params") TaskQueryParamsVo params);
    Long getAppingTaskCont(@Param("params") TaskQueryParamsVo params);

    /**
     * 修改审批人
     *
     * @param taskId   任务id
     * @param assignee 审批人
     */
    void updateHisAssignee(@Param("taskId") String taskId, @Param("assignee") String assignee);

    /**
     * 根据taskId获取任务对象。
     *
     * @param taskId   任务id
     */
    TaskVo getAppingTasksModel(@Param("taskId") String taskId);

    List<TaskVo> findByParamsList(@Param("params") TaskQueryParamsVo paramsVo);

    List<SysUser> findApproveUserByProcessInstanceId(@Param("processInstanceId") String processInstanceId);
}
